<?php
// +----------------------------------------------------------------------
// | 海豚PHP框架 [ DolphinPHP ]
// +----------------------------------------------------------------------
// | 版权所有 2016~2019 广东卓锐软件有限公司 [ http://www.zrthink.com ]
// +----------------------------------------------------------------------
// | 官方网站: http://dolphinphp.com
// +----------------------------------------------------------------------

namespace app\business\admin;

use app\admin\controller\Admin;
use app\common\builder\ZBuilder;
use app\business\model\Site as SiteModel;
use think\Db;

/**
 * 菜单控制器
 * @package app\cms\admin
 */
class Site extends Admin
{
    /**
     * 菜单列表
     * @param null $id 导航id
     * @author 蔡伟明 <314013107@qq.com>
     * @return mixed
     * @throws \think\Exception
     * @throws \think\db\exception\DataNotFoundException
     * @throws \think\db\exception\ModelNotFoundException
     * @throws \think\exception\DbException
     */
    var $typearr=['1'=>'教育','2'=>'健身旅游','3'=>'美食唱歌','4'=>'按摩保健'];
    
    public function index()
    {
        cookie('__forward__', $_SERVER['REQUEST_URI']);
        // 查询
        $map = $this->getMap();
        $list_rows1 = input('list_rows');
        $listRows = isset($list_rows1)?$list_rows1:10;
        if ($this->request->isPost()) {
            $data = $this->request->post();
        }
        
        // 获取排序
        $order = $this->getOrder();
        if(empty($order)){
            $order='site_id desc';
        }  

        $data_list = SiteModel::view('site', true)
        ->where($map)->order($order)
        ->paginate($listRows);
        
        return   ZBuilder::make('table')
        ->setPageTitle('门店管理') // 设置页面标题
        ->setTableName('site') // 设置数据表名
        ->addOrder('site_id,join_time') // 添加排序
        ->addFilterList('maxtype',$this->typearr)
        ->addFilterList('info_status',['0'=>'未开始','1'=>'完成待提交','2'=>'审核通过','4'=>'拒绝修改后重新提交'])
        ->setSearch(['site_name' => '门店名称','admin_name' => '管理员名称','admin_mobile' => '管理员手机']) // 设置搜索参数
        ->addColumns([ // 批量添加列
            ['site_id', '门店ID'],
            ['site_name', '门店名称'],
            ['maxtype','门店类目','callback',function($v){
                return $this->typearr[$v];
            }],
            ['admin_name','门店管理员'],
            ['admin_mobile','管理员手机'],
            ['address','门店地址'],
            ['info_status','资料提交状态','callback',function($v){
                $insarr=['0'=>'未开始','1'=>'完成待提交','2'=>'审核通过','4'=>'拒绝修改后重新提交'];
                return (in_array($v,['0','1','2','4']))?$insarr[$v]:'未开始';
            }],
            ['right_button', '操作', 'btn']
        ])
        ->hideCheckbox()
        ->setPrimaryKey('site_id')
        ->setColumnWidth('site_id', 80)
        ->setColumnWidth('site_name,maxtype,brand_name,admin_name,admin_mobile', 120)
        ->setColumnWidth('address', 300)
        ->addRightButtons('edit') // 批量添加右侧按钮
        ->setRowList($data_list) // 设置表格数据
        ->fetch(); // 渲染页面
    }
    
   
    /**
     * 编辑广告
     */
    public function edit($id=null){
        if ($id === null) $this->error('缺少参数');
        
        // 保存数据
        if ($this->request->isPost()) {
            $data = $this->request->post();
            // 验证
            $result = $this->validate($data, 'Site.edit');
            // 验证失败 输出错误信息
            if(true !== $result) $this->error($result);
            if(isset($data['zuobiao']) && !empty($data['zuobiao'])){
                $zuobiao=explode(',', trim($data['zuobiao']));
                $data['point_lng']=$zuobiao['0'];
                $data['point_lat']=$zuobiao['1'];
            }
            
            if (SiteModel::update($data,['site_id'=>$data['site_id']])) {
                // 记录行为
                action_log('brand_edit', 'business', $data['brand_id'], UID,'管理员执行了修改品牌的操作!');
                
                $this->success('修改成功', url('index'));
            } else {
                $this->error('修改失败');
            }
        }
        // 获取数据
        $info = SiteModel::where('site_id',$id)->find()->toArray();
        $bdarr=db('admin_user')->where('role','3')->column('nickname','id');    //得到DB专员数据
        $brandarr=db('brand')->where(1)->column('brand_name','brand_id');       //得到品牌数据
        
        $info['zuobiao_address']=(is_array($info) && count($info)>0)?$info['point_lng'].','.$info['point_lat']:'';
        
        // 使用ZBuilder快速创建表单
        return ZBuilder::make('form')
        ->setPageTitle('编辑') // 设置页面标题
        ->addFormItems([ // 批量添加表单项
            ['hidden','site_id'],
            ['select', 'maxtype', '类型(必填)', '必选，请选择类型',$this->typearr],
            ['text', 'site_name', '门店名称(必填)', '必填，可由英文字母、数字、中文组成'],
            ['select', 'brand_id', '所属品牌(必填)', '必填，请选择品牌',$brandarr],
            ['textarea','description','门店简介'],
            ['text', 'address', '门店地址(必填)', '必填，可由英文字母、数字、中文组成'],
            ['bmap','zuobiao','商户坐标','74Gtdz5rHkoI1Vvl3XWnGSXdvZB2AYwz','',$info['zuobiao_address'],'',16],
            
            ['file','video','门店宣传视频','大小不能超过500MB的MP4格式视频','','512000','MP4'],
            ['image','video_pic','门店宣传视频截图','大小不能超过500MB的jpg,jpeg,png图片','','512000','jpg,jpeg,png'],
            ['text', 'filepath', '门店静态化路径', ''],
            
            ['text', 'admin_mobile', '管理员手机(必填)', '必填，由11位数字组成'],
            ['text', 'admin_name', '管理员名称(必填)', '必填，可由英文字母、数字、中文组成'],

            ['text', 'slogan', '门店口号slogan', ''],
            ['select', 'sales_bd_id', 'BD专员(必填)', '必填，请选择BD专员',$bdarr],
            ['radio', 'info_status', '资料状态', '', ['0'=>'未开始', '1'=>'完成等待提交','2'=>'审核通过','4'=>'拒绝，修改后重新提交'], 0],
            ['ueditor', 'content', '门店详情', '',''],
            ['ueditor', 'advantage', '门店优势', '',''],

        ])
        ->setFormData($info) // 设置表单数据
        ->fetch();
    }

}